package com.yicong.ants.manager.http;

import com.x.livesdk.LiveHot;
import com.yicong.ants.MyGiftListBean;
import com.yicong.ants.bean.CheckDestroyAccountBean;
import com.yicong.ants.bean.DoubleConfirmItem;
import com.yicong.ants.bean.ExchangeNoticeBean;
import com.yicong.ants.bean.HomePageBean;
import com.yicong.ants.bean.YcAccountInfo;
import com.yicong.ants.bean.account.BonusInfo;
import com.yicong.ants.bean.account.BonusRecord;
import com.yicong.ants.bean.account.CheckAuth;
import com.yicong.ants.bean.account.DashBoard;
import com.yicong.ants.bean.account.RecFriendQrBean;
import com.yicong.ants.bean.account.RpBean;
import com.yicong.ants.bean.account.UserBean;
import com.yicong.ants.bean.account.UserBonus;
import com.yicong.ants.bean.ad.AdBanner;
import com.yicong.ants.bean.ad.AntsAd;
import com.yicong.ants.bean.base.AdCompleteBean;
import com.yicong.ants.bean.base.BaseBean;
import com.yicong.ants.bean.base.ListRespBean;
import com.yicong.ants.bean.base.MeituRespBean;
import com.yicong.ants.bean.base.PageRespBean;
import com.yicong.ants.bean.base.RespBean;
import com.yicong.ants.bean.circle.AdItem;
import com.yicong.ants.bean.circle.ArticleBean;
import com.yicong.ants.bean.circle.ArticleItem;
import com.yicong.ants.bean.circle.JournalItem;
import com.yicong.ants.bean.circle.PricingInfo;
import com.yicong.ants.bean.circle.PricingInfoItem;
import com.yicong.ants.bean.circle.RewardRank;
import com.yicong.ants.bean.circle.SummaryInfo;
import com.yicong.ants.bean.circle.Tutorial;
import com.yicong.ants.bean.circle.ViewedItem;
import com.yicong.ants.bean.coin.CoinInfo;
import com.yicong.ants.bean.coin.CoinRecord;
import com.yicong.ants.bean.coin.DelayTransferRecord;
import com.yicong.ants.bean.coin.LastTrans;
import com.yicong.ants.bean.coin.SearchUidTrans;
import com.yicong.ants.bean.coin.StockRecord;
import com.yicong.ants.bean.coin.TransInfo;
import com.yicong.ants.bean.coin.YcRecord;
import com.yicong.ants.bean.common.UploadFile;
import com.yicong.ants.bean.common.UploadImageBean;
import com.yicong.ants.bean.find.CateBean;
import com.yicong.ants.bean.gas.GasDetailBean;
import com.yicong.ants.bean.gas.GasListBean;
import com.yicong.ants.bean.global.NoticeRecordItem;
import com.yicong.ants.bean.global.VersionBean;
import com.yicong.ants.bean.home.ChannelBean;
import com.yicong.ants.bean.home.IndexConfig;
import com.yicong.ants.bean.home.NewsItem;
import com.yicong.ants.bean.hotel.HotelBean;
import com.yicong.ants.bean.me.AddressItemBean;
import com.yicong.ants.bean.me.ChildrenResp;
import com.yicong.ants.bean.me.EnergyTask;
import com.yicong.ants.bean.me.FansResp;
import com.yicong.ants.bean.me.MyPointResp;
import com.yicong.ants.bean.me.MyRecSummary;
import com.yicong.ants.bean.me.MySubordinateResp;
import com.yicong.ants.bean.me.RecFriendResp;
import com.yicong.ants.bean.me.SearchChildBean;
import com.yicong.ants.bean.me.UserIncome;
import com.yicong.ants.bean.me.sign.ActivityDetail;
import com.yicong.ants.bean.me.sign.ActivityList;
import com.yicong.ants.bean.me.sign.SignItem;
import com.yicong.ants.bean.me.sign.SignResult;
import com.yicong.ants.bean.order.BillHistoryBean;
import com.yicong.ants.bean.order.CardGoods;
import com.yicong.ants.bean.order.CardHistory;
import com.yicong.ants.bean.order.ScenicOrder;
import com.yicong.ants.bean.order.SubmitOrderResp;
import com.yicong.ants.bean.order.VisitorTicketBean;
import com.yicong.ants.bean.order.WxPay;
import com.yicong.ants.bean.reimburse.ReimburseHistoryBean;
import com.yicong.ants.bean.scenic.AppointBean;
import com.yicong.ants.bean.scenic.ChargeScenicItem;
import com.yicong.ants.bean.scenic.CityItemBean;
import com.yicong.ants.bean.scenic.ConsumeDetail;
import com.yicong.ants.bean.scenic.HomeRecItem;
import com.yicong.ants.bean.scenic.ScenicDetailBean;
import com.yicong.ants.bean.scenic.ScenicItem;
import com.yicong.ants.bean.scenic.TicketCodeBean;
import com.yicong.ants.bean.scenic.TicketResultBean;
import com.yicong.ants.bean.scenic.TourimsScenicListResp;
import com.yicong.ants.bean.scenic.WeatherBean2;
import com.yicong.ants.bean.task.TaskInfo;
import com.yicong.ants.bean.tourism.MyCardInfo;
import com.yicong.ants.bean.tourism.TourismRecItem;
import com.yicong.ants.bean.video.CommentResult;
import com.yicong.ants.bean.video.CommitL1;
import com.yicong.ants.bean.video.CommitL2;
import com.yicong.ants.bean.video.FocusBean;
import com.yicong.ants.bean.video.GiftInfoBean;
import com.yicong.ants.bean.video.GiftListBean;
import com.yicong.ants.bean.video.GiftLog;
import com.yicong.ants.bean.video.VideoListBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;

/**
 * @author cchao
 * @version 2019-04-29.
 */
public interface Apis extends ScenicApis{

    @FormUrlEncoded
    @POST("/api/v2/{path}")
    Observable<RespBean> simpleApi(@Path("path") String path, @FieldMap Map<String, String> map);

    /**
     * 版本version
     */
    @FormUrlEncoded
    @POST("/api/v2/client/version")
    Observable<RespBean<VersionBean>> version(@FieldMap Map<String, String> map);

    /**
     * 版本version
     */
    @FormUrlEncoded
    @POST("/api/v2/client/version2")
    Observable<RespBean<VersionBean>> version2(@FieldMap Map<String, String> map);

    /**
     * 下载统计
     */
    @FormUrlEncoded
    @POST("/api/v2/download/count")
    Observable<Object> downloadTracker(@FieldMap Map<String, String> map);

    /**
     * 首页频道
     */
    @GET("/api/v2/article/cate")
    Observable<ListRespBean<ChannelBean>> homechannel();

    /**
     * login
     */
    @FormUrlEncoded
    @POST("/api/v2/account/login/")
    Observable<RespBean<UserBean>> login(@FieldMap Map<String, String> map);

    /**
     * login
     */
    @FormUrlEncoded
    @POST("/api/v2/account/oneLogin/")
    Observable<RespBean<UserBean>> oneLogin(@FieldMap Map<String, String> map);


    /**
     * 登录，未注册无法登录
     */
    @FormUrlEncoded
    @POST("/api/v2/account/signIn/")
    Observable<RespBean<UserBean>> signIn(@FieldMap Map<String, String> map);

    /**
     * login
     */
    @FormUrlEncoded
    @POST("/api/v2/account/signUp/")
    Observable<RespBean<UserBean>> signUp(@FieldMap Map<String, String> map);

    /**
     * 更新昵称
     */
    @FormUrlEncoded
    @POST("/api/v2/User/updateNickName/")
    Observable<RespBean> updateNickName(@FieldMap Map<String, String> map);

    /**
     * 更新微信号
     */
    @FormUrlEncoded
    @POST("/api/v2/User/updateWxAccount/")
    Observable<RespBean> updateWxAccount(@FieldMap Map<String, String> map);

    /**
     * 更新性别
     */
    @FormUrlEncoded
    @POST("/api/v2/User/updateGender/")
    Observable<RespBean> updateGender(@FieldMap Map<String, String> map);

    /**
     * 收款信息
     */
    @GET("/api/v2/User/incomeInfo")
    Observable<RespBean<UserIncome>> getIncomeInfo();

    /**
     * 提现
     */
    @FormUrlEncoded
    @POST("/api/v2/User/withDraw")
    Observable<RespBean> withDraw(@FieldMap Map<String, String> map);

    /**
     * update收款信息
     */
    @FormUrlEncoded
    @POST("/api/v2/User/updateIncome")
    Observable<RespBean> updateIncome(@FieldMap Map<String, String> map);

    /**
     * update 地址
     */
    @FormUrlEncoded
    @POST("/api/v2/User/updateAddress")
    Observable<RespBean> updateAddress(@FieldMap Map<String, String> map);

    /**
     * del 地址
     */
    @FormUrlEncoded
    @POST("/api/v2/User/deleteAddress")
    Observable<RespBean> deleteAddress(@FieldMap Map<String, String> map);

    /**
     * del 地址
     */
    @GET("/api/v2/User/getAddresses")
    Observable<ListRespBean<AddressItemBean>> getAddresses();


    /**
     * login
     */
    @FormUrlEncoded
    @POST("/api/v2/account/sendSignVerifyCode/")
    Observable<RespBean> sendSignVerifyCode(@FieldMap Map<String, String> map);

    /**
     * login
     */
    @FormUrlEncoded
    @POST("/api/v2/account/sendLoginVerifyCode/")
    Observable<RespBean> sendLoginVerifyCode(@FieldMap Map<String, String> map);

    /**
     * login
     */
    @FormUrlEncoded
    @POST("/api/v2/coin/sendVerifyCode/")
    Observable<RespBean> sendVerifyCode(@FieldMap Map<String, String> map);

    /**
     * 刷新用户信息
     */
    @FormUrlEncoded
    @POST("/api/v2/account/getInfo")
    Observable<RespBean<UserBean>> refreshUserInfo(@FieldMap Map<String, String> map);

    /**
     * 刷新用户信息
     */
    @GET("/api/v2/account/getDashBoard")
    Observable<RespBean<DashBoard>> refreshDashboard();

    /**
     * 刷新用户信息
     */
    @GET("/api/v2/account/checkLevel")
    Observable<RespBean<String>> refreshStar();

    /**
     * 获取推荐分销用户概览
     */
    @GET("/api/v2/recommend/summary")
    Observable<RespBean<MyRecSummary>> summary();

    /**
     * 获取推荐分销用户概览
     */
    @FormUrlEncoded
    @POST("/api/v2/recommend/search_child")
    Observable<RespBean<SearchChildBean>> searchChild(@FieldMap Map<String, String> map);

    /**
     * 新闻列表频道
     */
    @FormUrlEncoded
    @POST("/api/v2/{path}")
    Observable<ListRespBean<NewsItem>> getNews(@Path("path") String path, @FieldMap Map<String, String> map);

    /**
     * 提现
     * <p>
     * partner_id：当前登录账号ID
     * amount:要提现的金额(100的倍数)
     * manage_pass:管理密码
     * code：短信验证码(使用发送短信验证码接口发送到当前账户手机号)
     */
    @FormUrlEncoded
    @POST("/api.php/User/cash")
    Observable<BaseBean> withdraw(@FieldMap Map<String, String> map);

    /**
     * 取消预约
     */
    @FormUrlEncoded
    @POST("/api/v2/appoint/cancel")
    Observable<BaseBean> cancelAppoint(@FieldMap Map<String, String> map);

    /**
     * 预约记录
     */
    @FormUrlEncoded
    @POST("/api/v2/appoint/ticket")
    Observable<RespBean<TicketResultBean>> getAppointTicket(@FieldMap Map<String, String> map);

    /**
     * 提现
     * <p>
     * <p>
     * partner_id：当前登陆账号ID
     * user_name：当前登陆账号
     * alipay_name：支付宝用户名
     * alipay_account：支付宝账号
     * manager：负责人
     * manager_phone：联系电话
     * code：短信验证码[发送到登录账号的手机号码]
     */
    @FormUrlEncoded
    @POST("/api.php/User/perfectInfo")
    Observable<BaseBean> editUserInfo(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/address/getweather")
    Observable<ListRespBean<WeatherBean2>> getWeather(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/index/sign_in")
    Observable<RespBean<Integer>> checkIn(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api.php/User/{path}")
    Observable<BaseBean> editPwd(@Path("path") String path, @FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api.php/Senic/{path}")
    Observable<RespBean> editProjectInfo(@Path("path") String path, @FieldMap Map<String, String> map);

    @Multipart
    @POST("api/v2/account/uploadImage")
    Observable<RespBean<UploadImageBean>> uploadImage(@Query("file_type") String file_type, @Part MultipartBody.Part _FILE);

    @FormUrlEncoded
    @POST("api/v2/account/editIdCardInfo")
    Observable<RespBean<UserBean>> editIdCardInfo(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/account/onRPSuccess")
    Observable<RespBean<UserBean>> auth(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/account/onRPSuccess")
    Observable<RespBean<UserBean>> rpCheckSuc(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/scenic/getCity")
    Observable<ListRespBean<CityItemBean>> city_list(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/order/check_rp2")
    Observable<RespBean<CheckAuth>> checkRp2(@FieldMap Map<String, String> map);

    @Multipart
    @POST("api/v2/User/updateAvatar")
    Observable<RespBean<String>> updateAvatar(@Part MultipartBody.Part _FILE);

    @Multipart
    @POST("/api/v2/{path}")
    Observable<RespBean<String>> uploadImageSjt(@Path("path") String path, @Part MultipartBody.Part _FILE);

    @GET("api/v2/client/notice_record")
    Observable<ListRespBean<NoticeRecordItem>> noticeRecord();

    @GET("/api/v2/goodsType/getsixcate")
    Observable<ListRespBean<CateBean>> getCates();

    @FormUrlEncoded
    @POST("/api/v2/business/allbusiness")
    Observable<ListRespBean<HomeRecItem>> getProductList(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/scenic/collectList")
    Observable<PageRespBean<ScenicItem>> getCollectScenic(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/card/order")
    Observable<PageRespBean<CardHistory>> getCardHistory(@FieldMap Map<String, String> params);

    /**
     * 更新昵称
     */
    @FormUrlEncoded
    @POST("/api/v2/card/exchange/")
    Observable<RespBean<UserBean>> exchangeCard(@FieldMap Map<String, String> map);


    @FormUrlEncoded
    @POST("/api/v2/scenic/recommend")
    Observable<ListRespBean<TourismRecItem>> getScenicRecList(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/scenic/recommend")
    Observable<TourimsScenicListResp> getRecScenic(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/ticket")
    Observable<RespBean<Map<String, String>>> getThirdService(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/{path}")
    Observable<RespBean<Map<String, String>>> getSimpleResp(@Path("path") String path, @FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic/all")
    Observable<PageRespBean<ScenicItem>> getScenicList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic/all")
    Observable<PageRespBean<ChargeScenicItem>> getChargeScenicList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/client/feedback")
    Observable<RespBean> feedBack(@FieldMap Map<String, String> map);

    @GET("/api/v2/card/info")
    Observable<RespBean<MyCardInfo>> getMyCardInfo();

    @FormUrlEncoded
    @POST("/api/v2/card/bind")
    Observable<RespBean<UserBean>> bindCard(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/card/goods")
    Observable<RespBean<CardGoods>> cardGoods(@FieldMap Map<String, String> map);

    @GET("/api/v2/card/goodsList")
    Observable<ListRespBean<CardGoods>> cardGoodsList();

    @FormUrlEncoded
    @POST("/api/v2/myqrcode/build")
    Observable<RespBean<String>> getUserQrCode(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/recommend/promotion")
    Observable<RespBean<RecFriendQrBean>> getRecFriendQr(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic/detail")
    Observable<RespBean<ScenicDetailBean>> getScenicDetail(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic/ticketCode")
    Observable<RespBean<TicketCodeBean>> getTicketCode(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic/collect")
    Observable<RespBean> toggleCollect(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic_order/submit_order")
    Observable<RespBean> orderScenic(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic_order/submit_project")
    Observable<RespBean> submitProject(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/appoint/getreimbursementlist")
    Observable<PageRespBean<AppointBean>> getCanReimburseList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/appoint/records")
    Observable<PageRespBean<AppointBean>> getAppointHistory(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/recommend/getRecommend")
    Observable<RecFriendResp> getRecFriendList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/recommend/subordinateList")
    Observable<RespBean<MySubordinateResp>> getSubordinateList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/recommend/children")
    Observable<RespBean<ChildrenResp>> children(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/recommend/poster")
    Observable<RespBean<List<String>>> poster(@FieldMap Map<String, String> map);

    //我的粉丝
    @FormUrlEncoded
    @POST("/api/v2/recommend/directChildren")
    Observable<RespBean<ChildrenResp>> directChildren(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/recommend/directChildren")
    Observable<RespBean<List<FansResp>>> directChildren2(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/index/integral")
    Observable<MyPointResp> getMyPointList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/appoint/refund_recode")
    Observable<PageRespBean<ReimburseHistoryBean>> getReimburseList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/index/index")
    Observable<RespBean<List<HotelBean>>> getHotelList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/{path}")
    Observable<RespBean> commonPost(@Path("path") String path, @FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/index/travel")
    Observable<RespBean<String>> getWhdxServiceUrl(@FieldMap Map<String, String> map);

    // <editor-fold desc="meitu">

    @FormUrlEncoded
    @POST("/api/v2/Meitu/scenic")
    Observable<PageRespBean<ScenicItem>> getMeituScenicList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/Meitu/active")
    Observable<MeituRespBean> activeMeitu(@FieldMap Map<String, String> map);

    // </editor-fold>

    @FormUrlEncoded
    @POST("api/v2/order/submitRp")
    Observable<RespBean<String>> submitAuthAli(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/order/submitRp")
    Observable<WxPay> submitAuthWx(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/order/submit_order")
    Observable<RespBean<SubmitOrderResp>> submitScenicOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/order/submit_card")
    Observable<RespBean<SubmitOrderResp>> submitCardOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("api/v2/order/payment")
    Observable<RespBean<SubmitOrderResp>> payment(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ticket/ticket_order")
    Observable<PageRespBean<BillHistoryBean>> getBillHistory(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic_order/orderList")
    Observable<PageRespBean<ScenicOrder>> getScenicOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic_order/addedOrderList")
    Observable<PageRespBean<ScenicOrder>> getAddedOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic_order/orderTicket")
    Observable<RespBean<TicketResultBean>> getScenicTicket(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/scenic_order/addedOrderTicket")
    Observable<RespBean<TicketResultBean>> getAddedScenicTicket(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/order/appeal_ticket_order")
    Observable<RespBean> appealTicketOrder(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/order/get_ticket_code")
    Observable<ListRespBean<VisitorTicketBean>> getTicketQr(@FieldMap Map<String, String> map);

    // gas
    @FormUrlEncoded
    @POST("gas/api/gasList")
    Observable<RespBean<GasListBean>> getGasList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("gas/api/detail")
    Observable<RespBean<GasDetailBean>> getDetail(@FieldMap Map<String, String> map);

    // coin
    @GET("/api/v2/coin/info")
    Observable<RespBean<CoinInfo>> coinInfo();

    //兑换比例
    @GET("/api/v2/client/coinAndUnit")
    Observable<RespBean<Map<String, String>>> rateInfo();

    @FormUrlEncoded
    @POST("/api/v2/coin/transferByPwd")
    Observable<RespBean> transferByPwd(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/coin/transferByCode")
    Observable<RespBean> transferByCode(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/coin/lastTransfer")
    Observable<ListRespBean<LastTrans>> lastTransfer(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/coin/tranInfo")
    Observable<RespBean<TransInfo>> tranInfo(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/account/searchByUid2")
    Observable<RespBean<SearchUidTrans>> searchById(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/account/getRPToken")
    Observable<RespBean<RpBean>> getRPToken(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/account/havePayPwd")
    Observable<RespBean<Map<String, Integer>>> havePayPwd(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/account/updatePayPwd")
    Observable<RespBean> updatePayPwd(@FieldMap Map<String, String> map);

    // bonus
    @FormUrlEncoded
    @POST("/api/v2/user_bonus/record")
    Observable<PageRespBean<BonusRecord>> getBonusRecord(@FieldMap Map<String, String> params);

    // contribution
    @GET("/api/v2/contribution/info")
    Observable<RespBean<UserBonus>> contributionInfo();

    @FormUrlEncoded
    @POST("/api/v2/coin/contributionRecord")
    Observable<PageRespBean<CoinRecord>> contributionRecord(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/merchantRecord")
    Observable<PageRespBean<CoinRecord>> merchantRecord(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/record")
    Observable<PageRespBean<CoinRecord>> coinRecord(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/stockRecord")
    Observable<PageRespBean<StockRecord>> stockRecord(@FieldMap Map<String, String> params);

    @GET("/api/v2/coin/receiveLevelRewards")
    Observable<RespBean> receiveLevelRewards();

    @FormUrlEncoded
    @POST("/api/v2/user_bonus/withDraw")
    Observable<RespBean> withDrawBonus(@FieldMap Map<String, String> map);

    @GET("/api/v2/account/getBalanceInfo")
    Observable<RespBean<BonusInfo>> getBalanceInfo();

    @FormUrlEncoded
    @POST("/api/v2/user_bonus/rewardVideoAmount")
    Observable<RespBean> rewardVideoAmount(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/account/onRewardAdCall")
    Observable<RespBean> onRewardAdCall(@FieldMap Map<String, String> map);

    @GET("/api/v2/task/onAdVideoComplete")
    Observable<RespBean<AdCompleteBean>> adVideoComplete(@QueryMap Map<String, Object> options);

    @GET("/api/v2/task/taskInfo")
    Observable<RespBean<TaskInfo>> taskInfo();

    @GET("/api/v2/yc_task/taskInfo")
    Observable<RespBean<TaskInfo>> ycTaskInfo();

    @FormUrlEncoded
    @POST("/api/v2/task/fetchTask")
    Observable<RespBean> fetchTask(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/yc_task/fetchTask")
    Observable<RespBean> fetchYCTask(@FieldMap Map<String, String> map);
    @FormUrlEncoded
    @POST("/api/v2/task/codeCheck")
    Observable<RespBean> realCheck(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/task/taskHistoryRecord")
    Observable<PageRespBean<TaskInfo.RecordItem>> taskRecord(@FieldMap Map<String, String> params);

    @GET("/api/v2/client/ad_video")
    Observable<RespBean<List<String>>> adVideo();

    @FormUrlEncoded
    @POST("/api/v2/block/officeIndex")
    Observable<PageRespBean<ArticleItem>> circleIndex(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/myArticle")
    Observable<PageRespBean<ArticleItem>> myArticle(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/journalPublish")
    Observable<RespBean> publishJournal(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/journalList")
    Observable<PageRespBean<JournalItem>> journalList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/myListJournal")
    Observable<PageRespBean<JournalItem>> myListJournal(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/delJournal")
    Observable<RespBean> journalDel(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/articleEdit")
    Observable<RespBean> articleEdit(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/articleDelete")
    Observable<RespBean> articleDelete(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/adList")
    Observable<PageRespBean<AdItem>> adIndex(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/viewed")
    Observable<PageRespBean<ViewedItem>> adViewed(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/rewardAuthor")
    Observable<RespBean> rewardAuthor(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/click")
    Observable<RespBean> adReward(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/publish2")
    Observable<RespBean> publishAd(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/editInfo")
    Observable<RespBean> editAd(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/manager")
    Observable<PageRespBean<AdItem>> adManager(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/offLine")
    Observable<RespBean> AdOffLine(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/pricingInfo")
    Observable<RespBean<PricingInfo>> pricingInfo(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/pricingInfo2")
    Observable<RespBean<List<PricingInfoItem>>> pricingInfo2(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/saveHtml")
    Observable<RespBean<String>> saveHtml(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/articlePublish")
    Observable<RespBean> publishArticle(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/htmlContent")
    Observable<RespBean<String>> htmlContent(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/tutorialApp2")
    Observable<RespBean<Tutorial>> tutorial(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/summary")
    Observable<RespBean<SummaryInfo>> summary(@FieldMap Map<String, String> map);

    @Multipart
    @POST("/core/service/uploadImage")
    Observable<RespBean<String>> uploadImage(@Part MultipartBody.Part _FILE);

    @Multipart
    @POST("/core/service/uploadFile")
    Observable<RespBean<UploadFile>> uploadFile(@Part MultipartBody.Part _FILE);

    @FormUrlEncoded
    @POST("/api/v2/block/officeDetailForApp")
    Observable<RespBean<ArticleBean>> articleDetail(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/rewardRank")
    Observable<RespBean<List<RewardRank>>> rewardRank(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/officeLike")
    Observable<RespBean> circleLike(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/likeJournal")
    Observable<RespBean> likeJournal(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/block/officeShare")
    Observable<RespBean> shareCount(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/coin/transferStock")
    Observable<RespBean> transferStock(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/open/common/consume_detail")
    Observable<RespBean<ConsumeDetail>> consume_detail(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/videoIndex")
    Observable<ListRespBean<VideoListBean>> getVideoList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/action")
    Observable<RespBean> videoLike(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/focus")
    Observable<RespBean> videoFocus(@FieldMap Map<String, String> map);

    @Multipart
    @POST("/api/v2/video/upload")
    Observable<RespBean<UploadFile>> saveVideo(@Part MultipartBody.Part files);

    @FormUrlEncoded
    @POST("/api/v2/video/saveVideo")
    Observable<RespBean> pushVideo(@FieldMap Map<String, String> map);

    @POST("/api/v2/video/giftList")
    Observable<ListRespBean<GiftListBean>> getGiftList();

    @FormUrlEncoded
    @POST("/api/v2/video/giftGiving")
    Observable<RespBean> giveGift(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/commentList")
    Observable<ListRespBean<CommitL1>> getVideoCommentList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/commentLike")
    Observable<RespBean> videoCommentLike(@Field("comment_id") String comment_id);

    @FormUrlEncoded
    @POST("/api/v2/video/comment")
    Observable<RespBean<CommentResult>> videoComment(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/index")
    Observable<RespBean<HomePageBean>> videoHomePage(@Field("user_id") String uid);

    @FormUrlEncoded
    @POST("/api/v2/video/getMoreVideos")
    Observable<ListRespBean<VideoListBean>> getVideoHomeList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/commentReply")
    Observable<ListRespBean<CommitL2>> getVideoCommentReply(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/gift")
    Observable<ListRespBean<MyGiftListBean>> getMyGiftList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/videoDetail")
    Observable<RespBean<VideoListBean>> getVideoDetail(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/focusList")
    Observable<ListRespBean<FocusBean>> getFocusList(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/giftInfo")
    Observable<RespBean<GiftInfoBean>> giftInfo(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/giftLog")
    Observable<ListRespBean<GiftLog>> giftLog(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/video/videoHistory")
    Observable<RespBean> videoHistory(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/coin/transferRecord")
    Observable<RespBean<List<DelayTransferRecord>>> transferRecord(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/coin/transferRecordAction")
    Observable<RespBean> transferRecordAction(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/client/indexInfo")
    Observable<RespBean<IndexConfig>> indexConfig(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/account/refreshCertCode")
    Observable<RespBean<String>> refreshCertCode(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/dailyTaskTarget")
    Observable<RespBean<AntsAd>> dailyTaskTarget(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/dailyTaskTarget2")
    Observable<RespBean<AntsAd>> dailyTaskTarget2(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/expose")
    Observable<RespBean> adExpose(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/clicked")
    Observable<RespBean> adClicked(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/queryRank")
    Observable<RespBean<Map<String, String>>> queryRank(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/ad/banner")
    Observable<RespBean<AdBanner>> adBanner(@FieldMap Map<String, String> map);

//    @FormUrlEncoded
//    @POST("/api/v2/task/energyTaskReward")
//    Observable<RespBean> energyTaskReward(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/energy/energyTaskReward")
    Observable<RespBean> energyTaskReward(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/task/energyTaskTarget")
    Observable<RespBean<EnergyTask>> energyTaskTarget(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/activity/auth")
    Observable<ListRespBean<ActivityList>> mySign(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/activity/detail")
    Observable<RespBean<ActivityDetail>> activityDetail(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/activity/allSigns")
    Observable<ListRespBean<SignItem>> signList(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/activity/qrcode2")
    Observable<RespBean<SignResult>> scanSignQr(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/activity/sign2")
    Observable<RespBean<SignResult>> startSign(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/client/energyTask")
    Observable<RespBean<EnergyTask>> energyTask(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/client/splash")
    Observable<ListRespBean<String>> loadSplash(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/recommend/recommendUrl")
    Observable<RespBean<String>> recommendUrl(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/video/del")
    Observable<RespBean> delVideo(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/task/mallRandItem")
    Observable<RespBean<AntsAd>> energyTaskMall(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/captcha/check")
    Observable<RespBean> check(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/toTransferConfirm")
    Observable<ListRespBean<DoubleConfirmItem>> toTransferConfirm(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/getTransferConfirm")
    Observable<ListRespBean<DoubleConfirmItem>> getTransferConfirm(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/transferConfirm")
    Observable<RespBean> transferConfirm(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/coin/transferBack")
    Observable<RespBean> transferBack(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/account/destroyAccount")
    Observable<RespBean> destroyAccount(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/account/sendDestroyVerifyCode")
    Observable<RespBean> sendDestroyVerifyCode(@FieldMap Map<String, String> map);

    @GET("/api/v2/yc_task/coinExchangeTaskInfo")
    Observable<RespBean<List<TaskInfo.ListBean>>> coinExchangeTaskInfo();

    @GET("/api/v2/yc_task/coinExchangeInfo")
    Observable<RespBean<ExchangeNoticeBean>> getCoinExchangeInfo();

    @GET("/api/v2/yc_task/coinFetchTask")
    Observable<RespBean> coinFetchTask(@QueryMap Map<String, String> map);

    @POST("api/v2/yc_coin/accountInfo")
    @FormUrlEncoded
    Observable<RespBean<YcAccountInfo>> accountInfo(@FieldMap Map<String, String> map);

    @FormUrlEncoded
    @POST("/api/v2/yc_coin/record")
    Observable<PageRespBean<YcRecord>> ycRecord(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/yc_coin/stockRecord")
    Observable<PageRespBean<YcRecord>> ycStockRecord(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/yc_coin/stockToYc")
    Observable<RespBean> stockToYc(@FieldMap Map<String, String> params);

    @FormUrlEncoded
    @POST("/api/v2/yc_coin/ycToStock")
    Observable<RespBean> ycToStock(@FieldMap Map<String, String> params);

    @POST
    Observable<Object> reportAdvError(@Url String url, @Body Map<String, String> map);

    @GET("/api/v2/account/checkDestroyAccount")
    Observable<RespBean<CheckDestroyAccountBean>> checkDestroyAccount();
}
